Skip to content

Drop Python 3.9 from CI, tox, and pyproject targets#252

Merged
amjith merged 3 commits intomainfrom
codex/remove-python-3.9-testing-configuration
Feb 15, 2026
Merged

Drop Python 3.9 from CI, tox, and pyproject targets#252
amjith merged 3 commits intomainfrom
codex/remove-python-3.9-testing-configuration

Conversation

@amjith
Copy link
Member

@amjith amjith commented Feb 15, 2026

Motivation

  • Remove Python 3.9 from automated test matrices and tooling targets to keep CI and tooling aligned with supported runtimes.
  • Raise the minimum declared runtime to Python 3.10 to reflect the removal of 3.9 from testing and type-checking targets.
  • Keep tox envlist explicit to avoid ambiguity about which Python versions are exercised in CI.

Description

  • Update GitHub Actions matrices to test only 3.103.13 by editing .github/workflows/ci.yml and .github/workflows/publish.yml.
  • Change tox.ini envlist from the generic py to explicit environments py310,py311,py312,py313,style,sqlean.
  • Bump project minimum Python in pyproject.toml from >=3.9 to >=3.10 and update tool.ty.environment.python-version from 3.9 to 3.10.
  • Add an Unreleased CHANGELOG.md entry noting the removal of Python 3.9 from test matrices and tooling targets.

Testing

  • Ran an environment-aware tox listing via uv run --extra dev tox -l, which succeeded and reported py310, py311, py312, py313, style, and sqlean.
  • Attempting tox -l directly failed initially because tox was not installed in the global environment (expected in this workspace), and the workspace-local uv invocation was used to validate the envlist instead.
  • Performed automated file checks to verify the updated files no longer reference 3.9 and confirmed the changes (no remaining 3.9 matches in the updated files).

Codex Task

@github-actions
Copy link

Findings (ordered by severity)

  1. Local tox regressions with explicit envlist
    tox.ini now enumerates py310,py311,py312,py313 without skip_missing_interpreters. On machines without all interpreters, tox will fail by default, whereas envlist = py previously just ran the current Python. Consider adding skip_missing_interpreters = true or documenting that contributors need all versions installed.
    File: tox.ini

Security concerns: none found.

Missing tests / edge cases: none beyond the tox usability regression above.

@amjith
Copy link
Member Author

amjith commented Feb 15, 2026

@codex Change tox.ini to keep the envlist = py

@chatgpt-codex-connector
Copy link

Summary

  • Updated tox.ini to restore envlist = py (instead of explicit py310py313), matching the requested follow-up and avoiding local tox failures when multiple interpreters are not installed. tox.iniL1-L4
  • Committed the change on the current branch with message: fix: restore tox default envlist.
  • Created a follow-up PR via the make_pr tool titled “Follow-up: keep tox envlist generic (py)”.

Testing

  • curl -s https://tox.wiki/en/latest/config.html | head -n 5
  • uv run --extra dev tox -l

View task →

@github-actions
Copy link

Findings

  1. tox default envs were reduced to only py, dropping style and sqlean. This is a behavioral regression from the previous default that ran lint/format and SQLean tests when developers run tox locally. If intentional, update docs or CI expectations; otherwise restore envlist = py,style,sqlean (and consider explicit py310..py313 if you want versioned defaults). tox.ini:1

Missing Tests / Edge Cases

  1. None directly introduced by the Python-version bump, but if sqlean is still expected to run in CI or locally, ensure it remains in the default tox envlist or is explicitly invoked elsewhere.

Notes

  • No security concerns found.
  • CI matrix updates and requires-python bump look consistent.

If you want, I can propose a small patch to restore the tox envlist while keeping the Python 3.10+ changes.

@amjith amjith merged commit a9fc0e8 into main Feb 15, 2026
7 of 8 checks passed
@amjith amjith deleted the codex/remove-python-3.9-testing-configuration branch February 15, 2026 03:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant